module.exports = {
  env: {
    NODE_ENV: '"production"'
  },
  defineConstants: {
  },
  mini: {},
  h5: {
    publicPath: '/h5/',
    // 启用文件 hash
    filenameHashing: true,
    // 输出目录
    outputDir: 'dist/h5',
    // 静态资源目录
    assetsDir: 'assets',
    // 生产环境 source map
    productionSourceMap: false,
    // 启用 CSS 提取
    extractCSS: true,
    // CSS 相关配置
    css: {
      // 是否使用 css 分离插件 ExtractTextPlugin
      extract: {
        // 忽略 CSS order 警告
        ignoreOrder: true
      },
      // 是否开启 CSS source maps
      sourceMap: false,
      // css预设器配置项
      loaderOptions: {
        // 向 CSS 相关的 loader 传递选项
        less: {
          // 自定义主题
          modifyVars: {},
          // 支持内联 JavaScript
          javascriptEnabled: true
        }
      }
    },
    // 开发服务器配置
    devServer: {
      port: 10086,
      host: 'localhost',
      https: false,
      open: false
    },
    // 构建配置
    build: {
      // 生产环境是否生成 sourceMap 文件
      productionSourceMap: false,
      // 开启 gzip 压缩
      gzip: true,
      // 开启 brotli 压缩
      brotli: true
    },
    // WebpackChain 插件配置
    webpackChain (chain) {
      // 配置输出文件名 hash
      chain.output
        .filename('assets/js/[name].[contenthash:8].js')
        .chunkFilename('assets/js/[name].[contenthash:8].js')
      
      // 如果 h5 端编译后体积过大，可以使用 webpack-bundle-analyzer 插件对打包体积进行分析
      if (process.env.ANALYZE) {
        chain.plugin('analyzer')
          .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [{
            analyzerMode: 'static',
            openAnalyzer: false,
            reportFilename: 'bundle-report.html'
          }])
      }
    }
  }
}
